package com.springboot.lock.lock_redis.lock;

/**
 * @Author: TongRui乀
 * @Date: 2020-08-05 20:04
 * @description：
 */
public interface DistributeLock {
    /**
     *  普通加锁 未获取到锁直接返回
     * @param key
     * @param value
     * @param expire 锁的超时时间
     * @return
     */
    boolean tryLock(String key, String value, Integer expire);

    /**
     *  获取锁不成功 在retryMills时间内持续获取
     * @param key
     * @param value
     * @param expire 锁的超时时间
     * @param retryMills  重试超时时间
     * @return
     */
    boolean tryLock(String key, String value, Integer expire, long retryMills);

    /**
     *  释放锁
     * @param key
     */
    void unLock(String key);
}
